home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DDJMAG / DDJ9005.ZIP / AYERS.ZIP / MARKET.ST < prev    next >
Text File  |  1990-02-26  |  3KB  |  97 lines

  1. "market.st (Version 1.0 -- 02/25/90 -- KEA)
  2.  
  3. This file installs the Market Simulation application.  To install
  4.  this application evaluate the following expression:
  5.  
  6.     Smalltalk at: #FileInDir put: Disk.
  7.     (Disk file: 'market.st') fileIn; close.
  8.     Smalltalk removeKey: #FileInDir
  9.  
  10.  To open the Market Simulation window evaluate the following expression:
  11.  
  12.     MarketWindow new open.
  13. "!
  14.  
  15.  
  16. "*************************************************************************
  17. The following code loads the animation images:"! 
  18.  
  19. (Smalltalk includesKey:#MarketImages)
  20.     ifFalse:[Smalltalk at:#MarketImages put:(Dictionary new:7)].!
  21.  
  22.  
  23. | keys fileNames key aFile type wid hgt aForm bitmap index |
  24.  
  25. CursorManager execute change.
  26.  
  27. keys :=         #(  'PersonUp'      'PersonRight'
  28.                     'PersonLeft'    'PersonDown'
  29.                     'Customer'      'CustomerReaching'
  30.                     'Counter').
  31.  
  32. fileNames :=    #(  'prsnup.frm'    'prsnrght.frm'
  33.                     'prsnleft.frm'  'prsndown.frm'
  34.                     'customer.frm'  'custrchg.frm'
  35.                     'counter.frm').
  36.  
  37. Transcript cr;  show:'Filing in animation images';  cr.
  38.  
  39. 1 to:keys size do:[:i|
  40.     key    := keys at:i.
  41.  
  42.     Transcript show:'...', key, ' (', (fileNames at:i), ')';  cr.
  43.  
  44.     aFile  := Disk file:(fileNames at:i).
  45.     type   := aFile nextLine.
  46.     wid    := aFile nextLine asInteger.
  47.     hgt    := aFile nextLine asInteger.
  48.     aForm  := Form width:wid height:hgt.
  49.     bitmap := aForm bitmap.
  50.     index  := 1.
  51.     [aFile atEnd  or:[index > bitmap size]]
  52.         whileFalse:[
  53.             bitmap at:index put:aFile nextWord asInteger.
  54.             index := index + 1].
  55.     MarketImages at:key put:aForm].
  56.  
  57. CursorManager normal change.!
  58.  
  59. "*************************************************************************
  60. The following code loads the application classes:"!
  61.  
  62.  
  63. | classes aClass name aFileStream |
  64.  
  65. CursorManager execute change.
  66.  
  67. classes := #(   EmptyMenu
  68.                 RandomNumber
  69.                 MarketActor
  70.                     Customer
  71.                     Checker
  72.                     Bagger
  73.                 CheckoutCounter
  74.                 MarketSimulator
  75.                 MarketWindow).
  76. Transcript
  77.     cr;
  78.     show:'Installing the Market Simulation classes';
  79.     cr.
  80. classes do:[:class|
  81.     (Smalltalk includesKey:class)
  82.         ifTrue:[
  83.             aClass := Smalltalk at:class.
  84.             Transcript show:'  ', aClass name, ' exists';  cr.]
  85.         ifFalse:[
  86.             aClass := class printString.
  87.             name := File fileName:aClass extension:'cls'.
  88.             Transcript show:'  ', aClass, ' -- ', name;  cr.
  89.             aFileStream := Disk file:name.
  90.             aFileStream
  91.                 fileIn;
  92.                 close]].
  93. Transcript
  94.     show:'Done installing application classes';  cr;  cr.
  95.  
  96. CursorManager normal change.!
  97.